# 语法： if 命令 then; 注意：不是if else语句
if pwd
then
    echo "pwd肯定执行成功"
fi

if ps aux | grep ssr-local | grep -v grep ;then
    echo "小飞机已经在运行"
fi

# 语法: if 命令 ;then xxx else xxx fi
if ps aux | grep ssr-local | grep -v grep ;then
    echo "小飞机已经在运行"
else
    echo "小飞机没有在运行"
fi

if ls aaa 1>/dev/null 2>&1 ;then
    echo ""
else
    echo "ls aaa 失败了 $?"
fi

# test 命令 由于if 语句后面的表达式只能是一个命令 这个命令返回0标识执行成功 所以需要使用test
var22=""
if test $var22 ;then
    echo $var22
else
    echo "var22 is null"
fi

var23="x"
if test $var23 ;then
    echo $var23
else
    echo "var23 is null"
fi


# test命令在bash中有字面量表达式 []
if [ $var23 ] ;then
    echo "var23 is true"
else
    echo "var23 is false"
fi

# test 命令使用 -lt -eq -ge ...等进行数值比较
num1=23
num2=24
if [ $num1 -lt $num2 ] ;then
    echo "num1 < num2"
else
    echo "num1 > num2"
fi

# test 命令使用 = < > != -n(长度是否不为0) -z（长度是否为0） 来比较字符串
# 注意： > < 号需要转义
testuser=baloneox
if [ $USER = $testuser ] ;then
    echo "hello baloneo"
else
    echo "You are bad user!"
fi

var11=aac
var22=bbb
if [ $var11 \> $var22 ] ;then
    echo "var11 大于 var22"
else
    echo "var11 小于 var22"
fi

# -n 和 -z 可以判断变量是否为“空”
if [ -n $var22 ]
then
    echo var22 长度不为0
fi

if [ -z $xxx ]  # 没有定义 长度也是0
then
    echo xxx 长度为0
fi

# 文件比较
# -d file     检查file是否存在并是一个目录
# -e file     检查file是否存在
# -f file     检查file是否存在并是一个文件
# -r file     检查file是否存在并可读
# -s file     检查file是否存在并非空
# -w file     检查file是否存在并可写
# -x file     检查file是否存在并可执行
# -O file     检查file是否存在并属当前用户所有
# -G file     检查file是否存在并且默认组与当前用户相同
# file1 -nt file2     检查file1是否比file2新
# file1 -ot file2     检查file1是否比file2旧

if [ -f $PWD/note.md ] ;then
    echo "$PWD/note.md 存在"
else
    echo "$PWD/note.md 不存在"
fi
 

# 复合条件
if [ -d $HOME ]  && [ -w $HOME/testing ]
then 
    echo file exists
else
    echo file not found.....
fi

# for 数组循环
arr=(zhangsan lisi wangwu zhaoliu)
echo ${arr[*]}

for name in ${arr[*]}
do
    echo "your name is $name"
done

# for 列表
list="Alabama Alaska Arizona Arkansas Colorado"
list=$list" ZhangSan"
for state in $list
do
    echo "Have you ever visited $state?"
done 

# 命令变量遍历
for file in $(ls)
do 
    echo "file: $file"
done

# 通配符读取目录
for file in ./*
do
    if [ -d $file ] ;then
        echo "$file 是目录"
    elif [ -f $file ] ;then
        echo "$file 是文件"
    fi
done

## c语言风格for
for (( i=1; i <= 10; i++ ))
do
    echo "The next number is $i"
done

# true false是内建命令
flag="true"
while $flag
do
    echo "hello $flag"
    sleep 2
    flag="false"
    echo "exit"
done

if false
then
    echo "hhhhh is true"
else
    echo "hhhhh is false"
fi

var1=10
while [ $var1 -gt 0 ]
do
    echo $var1
    var1=$[ $var1 - 1 ]  # 和$(())是一样的
done
